
module MyFuncs where

schwartz l [] = []
schwartz l i = let
    (a, b) = splitAt (head i) l
    in
    head b : schwartz l (tail i)

zipN :: [[a]] -> [[a]]
zipN lol | not $ null $ head lol =
    (map head lol) : (zipN $ map tail lol)
zipN lol = replicate (length lol) []

prependSlice :: [[a]] -> [a] -> [[a]]
prependSlice rows [] = rows
prependSlice rows slice =
    (head slice : head rows) : prependSlice (tail rows) (tail slice)

